package com.supms.course.mapper;

import java.util.List;
import com.supms.course.domain.CourseTarget;

/**
 * 课程目标达成度Mapper接口
 * 
 * @author LiangHao
 * @date 2022-03-11
 */
public interface CourseTargetMapper 
{
    /**
     * 查询课程目标达成度
     * 
     * @param id 课程目标达成度主键
     * @return 课程目标达成度
     */
    public CourseTarget selectCourseTargetById(Long id);

    /**
     * 查询课程目标达成度列表
     * 
     * @param courseTarget 课程目标达成度
     * @return 课程目标达成度集合
     */
    public List<CourseTarget> selectCourseTargetList(CourseTarget courseTarget);

    /**
     * 新增课程目标达成度
     * 
     * @param courseTarget 课程目标达成度
     * @return 结果
     */
    public int insertCourseTarget(CourseTarget courseTarget);

    /**
     * 修改课程目标达成度
     * 
     * @param courseTarget 课程目标达成度
     * @return 结果
     */
    public int updateCourseTarget(CourseTarget courseTarget);

    /**
     * 删除课程目标达成度
     * 
     * @param id 课程目标达成度主键
     * @return 结果
     */
    public int deleteCourseTargetById(Long id);

    /**
     * 批量删除课程目标达成度
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteCourseTargetByIds(Long[] ids);

    /**
     * 通过用户帐号获取督导姓名（用户姓名）
     * @param operName 用户账号
     * @return 结果（用户姓名 ==> 督导姓名）
     */
    public String getSupNameByOperName(String operName);

    /**
     * 将课程目标达成度检查表中的评价标记改为已评价（"1"）
     * @param courseTargetId 本科课程目标达成度检查表ID
     */
    public void updateCourseTargetEvalFlagById(Long courseTargetId);

    /**
     * 获取本科课程目标达成度检查表（数据综合查看表） --- 未评价
     */
    public CourseTarget getCourseTargetTable0(CourseTarget courseTarget);

    /**
     * 获取本科课程目标达成度检查表（数据综合查看表） --- 已评价
     */
    public CourseTarget getCourseTargetTable1(CourseTarget courseTarget);

    /**
     * 通过传来的本科课程目标达成度检查表ID，查询已经做了评价的表
     * @param ids 需要删除本科课程目标达成度检查表的ID数组
     * @return 已经做了评价的本科课程目标达成度检查表ID数组
     */
    public Long[] selectCourseTargetEvalFlagByIds(Long[] ids);

    /**
     * 批量删除已评价的本科课程目标达成度检查表
     * @param haveIds 已经做了评价的本科课程目标达成度检查表ID
     */
    public void deleteCourseTargetEvalByIds(Long[] haveIds);
}
